'use strict';

module.exports = app => {
  // 普通用户前台用户
  app.role.use('user', ctx => {
    const login = ctx.session.frontUser;
    if (login) {
      return true;
    }
    return false;
  });

  // 管理员管理员
  app.role.use('admin', ctx => {
    const userInfo = ctx.session.userInfo;
    if (userInfo) {
      const user_type = +userInfo.user_type;
      if (user_type === 1) {
        return true;
      }
    }
    return false;
  });

  // 权限错误提示，koa-roles 还不支持 async/await
  app.role.failureHandler = function(ctx, action) {
    const userInfo = ctx.session.userInfo;
    switch (action) {
      case 'user':
        ctx.redirect('/login');
        break;
      default:
        ctx.session.userInfo = null;
        if(userInfo) {
          ctx.session.errMsg = '很抱歉，您没有权限登录~';
        }
        ctx.redirect('/admin/login');
    }
  };
};
